<?php

class FormUploadRecursoEscort extends TPage {

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->iniciarControles();
        }
    }

    private function iniciarControles() {
        $idEscort = $this->Request["idEscort"];
        $title = $this->Request["tipoRecurso"];
        $nombreContenedor = $this->Request["nombreContenedor"];
        $themeBaseUrl = $this->Request["themeBaseUrl"];
        $prefijoControl = $this->Request["prefijoControl"];

        $this->setViewState("idEscort", $idEscort);
        $this->setViewState("title", $title);
        $this->setViewState("nombreContenedor", $nombreContenedor);
        $this->setViewState("themeBaseUrl", $themeBaseUrl);
        $this->setViewState("prefijoControl", $prefijoControl);
    }

    private function grabarArchivoFileUpload($objFileUpload) {
        try {
            $idEscort = $this->getViewState("idEscort");
            $title = $this->getViewState("title");
            $idTipoRecurso = Tipo_recurso::IMAGEN;

            if ($objFileUpload->HasFile) {
                $nombreArchivo = $objFileUpload->FileName;
                $nombreArchivo = Util::obtenerNombreUnicoArchivo(Util::reemplazarCaracteresEspeciales($nombreArchivo));

                $contentType = $objFileUpload->FileType;
                $tamano = $objFileUpload->FileSize;

                $oRecurso_escort = new Recurso_escort();
                $oRecurso_escort->setId("-1");
                $oRecurso_escort->setSrc($nombreArchivo);
                $oRecurso_escort->setTitle($title);
                $oRecurso_escort->setIdEscort($idEscort);
                $oRecurso_escort->setIdTipoRecurso($idTipoRecurso);
                $oRecurso_escortBLL = new Recurso_escortBLL();
                $resultado = $oRecurso_escortBLL->grabar($oRecurso_escort);

                $path = Util::obtenerPathRecursoEscortPorTipoRecurso($this->Page, $title);
                $path = str_replace($this->Page->Theme->BaseUrl, "", $path);
                $path = str_replace("/", DIRECTORY_SEPARATOR, $path);
                $directorioAplicacion = Util::obtenerDirectorioBaseAplicacion();
                $path = $directorioAplicacion . "themes" . DIRECTORY_SEPARATOR . "user" . $path;

                //copia el archivo al directorio destino
                $rutaImagen = $path . $nombreArchivo;
                $objFileUpload->saveAs($rutaImagen);
                Util::subirImagen($nombreArchivo, $rutaImagen, $contentType);
                Util::redimensionarImagenRecursoEscort($rutaImagen, $title);
            }
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }

    public function btnGrabarClick($sender, $param) {
        try {
            $dataScript = "";
            $idEscort = $this->getViewState("idEscort");
            $title = $this->getViewState("title");
            $nombreContenedor = $this->getViewState("nombreContenedor");
            $themeBaseUrl = $this->getViewState("themeBaseUrl");
            $prefijoControl = $this->getViewState("prefijoControl");
            $path = Util::obtenerPathRecursoEscortPorTipoRecurso($this->Page, $title);

            $this->grabarArchivoFileUpload($this->fuArchivo1);
            $this->grabarArchivoFileUpload($this->fuArchivo2);
            $this->grabarArchivoFileUpload($this->fuArchivo3);
            $this->grabarArchivoFileUpload($this->fuArchivo4);
            $this->grabarArchivoFileUpload($this->fuArchivo5);

            $json = array(
                "idEscort" => $idEscort,
                "tipoRecurso" => $title,
                "nombreContenedor" => $nombreContenedor,
                "path" => $path,
                "themeBaseUrl" => $themeBaseUrl,
                "cargaInicial" => false,
                "prefijoControl" => $prefijoControl
            );
            $json = json_encode($json);
            $dataScript = "wre_cerrarPopUp(" . $json . ");";
            $this->Page->ClientScript->registerEndScript("cerrarPopUp", $dataScript);
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }

}

?>
